#include "LQ_MotorServo.h"
#include "LQ_UART.h"
#include "LQ_GPT12_ENC.h"
#include "Platform_Types.h"

int Low_Pass_Filter(int encinput,int* Feedback_enc,long int* Feedback_enc_tmp);
int get_PWM(int currentspeed,int targetspeed);
void Motor_Back_PID_Control(void);
void Test_Motor_Back_PID(void);
void Test_Balance(void);
void Motor_Front_PID_Control(void);
void Test_DMP(void);
void paramchange(void);
void zero_change(void);
void speed_kp_change(void);
void roll_kp_change(void);
void gyrox_kp_change(void);
void Bicycle_Control(void);
void Servo_Control(void);
void GPS_Route(void);
void Servo_Control1(void);
void Datas_Transform(void);
void calculate_zero_bias(void);
void Test_Remote_Control(void);
void x6f_scan(void) ;
void Pose_Control(void);
void bend_change(void);
void Velocity_Max_change(void);
void Zero_Control(void);
void Servo_Control2(void);
void Speed_Control(void);
void change_startangle(void);
void Start_Fix(void);
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2);
double get_two_points_azimuth (double latitude1, double longitude1, double latitude2, double longitude2);
void Navigate(void);
void hope_change(void);
void Reflect_Coordinate(void);
void Pose_Control1(void);
void change_filter(void);
void Location_Mix1(void);
void Target_Output(void);
void Location_Output1(void);
void Route_Fix1(void);
double Hope_bias_x(double x,double y);
double Hope_bias_y(double x,double y);
void Stop_Judge(void);
void Single_ang_change(void);
void BlueTooth_Control(void);
void filter_change(void);
void Route_Fix2(void);
void Speed_control(void);
int is_stable(float data[], int len);
void gpsyaw_2_gyroyaw(void);
void fix_param_change(void);
void servo_mid_change(void);
void filter_change1(void);
void Mode_Select(void);
void State_Change(void);
void fix_threshold_change(void);
void Dynamic_Zero_Control(void);
void Velocity_Min_change(void);
void RaceTypeChange(void);
void UpdateTargetPoint(void);
void Datas_Transform1(void);
void Speed_control1(void);
void Dynamic_K_change(void);
